<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Pexpect - Examples</title>
<link rel="stylesheet" href="clean.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="Noah Spurrier">
<meta name="Keywords"
 content="pexpect, Noah Spurrier, Python, Libes, TCL, Expect, pipe, popen, pyExpect, expectpy, expect-like, expect-alike, expect like">
<meta name="Description" content="Examples for using Pexpect.">
</head>
<body bgcolor="#ffffff" text="#000000">
<div id="Header">
<h1>Pexpect Examples</h1>
</div>
<div id="Content">

<p><span class="code">hive.py</span></p>
<p><blockquote>
This script creates SSH connections to a list of hosts that
you provide. Then you are given a command line prompt. Each
shell command that you enter is sent to all the hosts. The
response from each host is collected and printed. For example,
you could connect to a dozen different machines and reboot
them all at once.
</p></blockquote>

<p><span class="code">script.py</span></p>
<p><blockquote>
 This implements a command similar to the classic BSD
"script" command.
 This will start a subshell and log all input and
output to a file.
 This demonstrates the interact() method of Pexpect.
</p></blockquote>

<p><span class="code">fix_cvs_files.py</span></p>
<p><blockquote>
 This is for cleaning up binary files improperly
added to CVS.
 This script scans the given path to find binary
files;
 checks with CVS to see if the sticky options are set
to -kb;
 finally if sticky options are not -kb then uses 'cvs
admin' to
 set the -kb option.
</p></blockquote>

<p><span class="code">ftp.py</span></p>
<p><blockquote>
 This demonstrates an FTP "bookmark".
 This connects to an ftp site; does a few ftp stuff;
and then gives the user
 interactive control over the session. In this case
the "bookmark" is to a
 directory on the OpenBSD ftp server. It puts you in
the i386 packages
 directory. You can easily modify this for other
sites.
 This demonstrates the interact() method of Pexpect.
</p></blockquote>

<p><span class="code">monitor.py</span></p>
<p><blockquote>
 This runs a sequence of commands on a remote host
using SSH.
 It runs a simple system checks such as uptime and
free to monitor
 the state of the remote host.
</p></blockquote>

<p><span class="code">passmass.py</span></p>
<p><blockquote>
 This will login to each given server and change the
password of the
 given user. This demonstrates scripting logins and
passwords.
</p></blockquote>

<p><span class="code">python.py</span></p>
<p><blockquote>
 This starts the python interpreter and prints the
greeting message backwards.
 It then gives the user iteractive control of Python.
It's pretty useless!
</p></blockquote>

<p><span class="code">rippy.py</span></p>
<p><blockquote>
 This is a wizard for mencoder. It greatly simplifies
the process of
 ripping a DVD to Divx (mpeg4) format. It can
transcode from any
 video file to another. It has options for resampling
the audio stream;
 removing interlace artifacts, fitting to a target
file size, etc.
 There are lots of options, but the process is simple
and easy to use.
</p></blockquote>

<p><span class="code">sshls.py</span></p>
<p><blockquote>
 This lists a directory on a remote machine.
</p></blockquote>
<p><span class="code">ssh_tunnel.py</span></p>
<p><blockquote>
 This starts an SSH tunnel to a remote machine. It
monitors the connection
 and restarts the tunnel if it goes down.
</p></blockquote>
<p><span class="code">uptime.py</span></p>
<p><blockquote>
 This will run the uptime command and parse the
output into variables.
 This demonstrates using a single regular expression
to match the output
 of a command and capturing different variable in
match groups.
 The grouping regular expression handles a wide variety of different
uptime formats.
  </blockquote>

<p>
<a href="http://sourceforge.net/projects/pexpect/"
 title="The Pexpect project page on SourceForge.net"> <img
 src="http://sourceforge.net/sflogo.php?group_id=59762&amp;type=5"
 alt="The Pexpect project page on SourceForge.net" border="0"
 height="31" width="105"> </a>
</p>
</div>

</body>
</html>
